﻿/*
# -*- coding: utf-8 -*-
# 注意：

# 若希望将本代码用于商业用途，需先联系作者并获得明确授权。
# 作者不对因使用本代码引发的任何直接或间接损失负责。
# 如有违反上述条款的行为，作者保留追究法律责任的权利。

# 免责声明：
# 请尊重知识产权，遵循相关法律法规。

# Notice:
# If you wish to use this code for commercial purposes, you must contact the author and obtain explicit authorization.
# The author is not responsible for any direct or indirect losses caused by the use of this code.
# If any of the above terms are violated, the author reserves the right to pursue legal action.
# Disclaimer:
# Please respect intellectual property rights and comply with relevant laws and regulations.

# Внимание:
# Если вы хотите использовать этот код в коммерческих целях, вам необходимо связаться с автором и получить явное разрешение.
# Автор не несет ответственности за любые прямые или косвенные убытки, возникшие в результате использования этого кода.
# В случае нарушения вышеуказанных условий автор оставляет за собой право на юридическое преследование.
# Отказ от ответственности:
# Пожалуйста, уважайте интеллектуальную собственность и соблюдайте соответствующие законы и нормативные акты.

# Attention :
# Si vous souhaitez utiliser ce code à des fins commerciales, vous devez contacter l'auteur et obtenir une autorisation explicite.
# L'auteur n'est pas responsable des pertes directes ou indirectes causées par l'utilisation de ce code.
# En cas de violation des conditions ci-dessus, l'auteur se réserve le droit de poursuivre une action en justice.
# Avertissement :
# Veuillez respecter les droits de propriété intellectuelle et vous conformer aux lois et réglementations en vigueur.

# 注意：

# 若希望将本代码用于商业用途，需先联系作者并获得明确授权。
# 作者不对因使用本代码引发的任何直接或间接损失负责。
# 如有违反上述条款的行为，作者保留追究法律责任的权利。

# 免责声明：
# 请尊重知识产权，遵循相关法律法规。

# Notice:
# If you wish to use this code for commercial purposes, you must contact the author and obtain explicit authorization.
# The author is not responsible for any direct or indirect losses caused by the use of this code.
# If any of the above terms are violated, the author reserves the right to pursue legal action.
# Disclaimer:
# Please respect intellectual property rights and comply with relevant laws and regulations.

# Внимание:
# Если вы хотите использовать этот код в коммерческих целях, вам необходимо связаться с автором и получить явное разрешение.
# Автор не несет ответственности за любые прямые или косвенные убытки, возникшие в результате использования этого кода.
# В случае нарушения вышеуказанных условий автор оставляет за собой право на юридическое преследование.
# Отказ от ответственности:
# Пожалуйста, уважайте интеллектуальную собственность и соблюдайте соответствующие законы и нормативные акты.

# Attention :
# Si vous souhaitez utiliser ce code à des fins commerciales, vous devez contacter l'auteur et obtenir une autorisation explicite.
# L'auteur n'est pas responsable des pertes directes ou indirectes causées par l'utilisation de ce code.
# En cas de violation des conditions ci-dessus, l'auteur se réserve le droit de poursuivre une action en justice.
# Avertissement :
# Veuillez respecter les droits de propriété intellectuelle et vous conformer aux lois et réglementations en vigueur.

# 注意：

# 若希望将本代码用于商业用途，需先联系作者并获得明确授权。
# 作者不对因使用本代码引发的任何直接或间接损失负责。
# 如有违反上述条款的行为，作者保留追究法律责任的权利。

# 免责声明：
# 请尊重知识产权，遵循相关法律法规。

# Notice:
# If you wish to use this code for commercial purposes, you must contact the author and obtain explicit authorization.
# The author is not responsible for any direct or indirect losses caused by the use of this code.
# If any of the above terms are violated, the author reserves the right to pursue legal action.
# Disclaimer:
# Please respect intellectual property rights and comply with relevant laws and regulations.

# Внимание:
# Если вы хотите использовать этот код в коммерческих целях, вам необходимо связаться с автором и получить явное разрешение.
# Автор не несет ответственности за любые прямые или косвенные убытки, возникшие в результате использования этого кода.
# В случае нарушения вышеуказанных условий автор оставляет за собой право на юридическое преследование.
# Отказ от ответственности:
# Пожалуйста, уважайте интеллектуальную собственность и соблюдайте соответствующие законы и нормативные акты.

# Attention :
# Si vous souhaitez utiliser ce code à des fins commerciales, vous devez contacter l'auteur et obtenir une autorisation explicite.
# L'auteur n'est pas responsable des pertes directes ou indirectes causées par l'utilisation de ce code.
# En cas de violation des conditions ci-dessus, l'auteur se réserve le droit de poursuivre une action en justice.
# Avertissement :
# Veuillez respecter les droits de propriété intellectuelle et vous conformer aux lois et réglementations en vigueur.

# 注意：

# 若希望将本代码用于商业用途，需先联系作者并获得明确授权。
# 作者不对因使用本代码引发的任何直接或间接损失负责。
# 如有违反上述条款的行为，作者保留追究法律责任的权利。

# 免责声明：
# 请尊重知识产权，遵循相关法律法规。

# Notice:
# If you wish to use this code for commercial purposes, you must contact the author and obtain explicit authorization.
# The author is not responsible for any direct or indirect losses caused by the use of this code.
# If any of the above terms are violated, the author reserves the right to pursue legal action.
# Disclaimer:
# Please respect intellectual property rights and comply with relevant laws and regulations.

# Внимание:
# Если вы хотите использовать этот код в коммерческих целях, вам необходимо связаться с автором и получить явное разрешение.
# Автор не несет ответственности за любые прямые или косвенные убытки, возникшие в результате использования этого кода.
# В случае нарушения вышеуказанных условий автор оставляет за собой право на юридическое преследование.
# Отказ от ответственности:
# Пожалуйста, уважайте интеллектуальную собственность и соблюдайте соответствующие законы и нормативные акты.

# Attention :
# Si vous souhaitez utiliser ce code à des fins commerciales, vous devez contacter l'auteur et obtenir une autorisation explicite.
# L'auteur n'est pas responsable des pertes directes ou indirectes causées par l'utilisation de ce code.
# En cas de violation des conditions ci-dessus, l'auteur se réserve le droit de poursuivre une action en justice.
# Avertissement :
# Veuillez respecter les droits de propriété intellectuelle et vous conformer aux lois et réglementations en vigueur.

# 注意：

# 若希望将本代码用于商业用途，需先联系作者并获得明确授权。
# 作者不对因使用本代码引发的任何直接或间接损失负责。
# 如有违反上述条款的行为，作者保留追究法律责任的权利。

# 免责声明：
# 请尊重知识产权，遵循相关法律法规。

# Notice:
# If you wish to use this code for commercial purposes, you must contact the author and obtain explicit authorization.
# The author is not responsible for any direct or indirect losses caused by the use of this code.
# If any of the above terms are violated, the author reserves the right to pursue legal action.
# Disclaimer:
# Please respect intellectual property rights and comply with relevant laws and regulations.

# Внимание:
# Если вы хотите использовать этот код в коммерческих целях, вам необходимо связаться с автором и получить явное разрешение.
# Автор не несет ответственности за любые прямые или косвенные убытки, возникшие в результате использования этого кода.
# В случае нарушения вышеуказанных условий автор оставляет за собой право на юридическое преследование.
# Отказ от ответственности:
# Пожалуйста, уважайте интеллектуальную собственность и соблюдайте соответствующие законы и нормативные акты.

# Attention :
# Si vous souhaitez utiliser ce code à des fins commerciales, vous devez contacter l'auteur et obtenir une autorisation explicite.
# L'auteur n'est pas responsable des pertes directes ou indirectes causées par l'utilisation de ce code.
# En cas de violation des conditions ci-dessus, l'auteur se réserve le droit de poursuivre une action en justice.
# Avertissement :
# Veuillez respecter les droits de propriété intellectuelle et vous conformer aux lois et réglementations en vigueur.

 */
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class ChangeLanguage : MonoBehaviour {

	public GameObject langButton1;
	public GameObject langButton2;
	public GameObject langButton3;

	public Sprite americanFlag;
	public Sprite italicanFlag;
	public Sprite serbianFlag;

	public GameObject playButton;
	public GameObject achevementsButton;
	public GameObject ballShopButton;

	public GameObject continueButtonPauseMenu;
	public GameObject restartButtonPauseMenu;
	public GameObject exitButtonPauseMenu;

	public GameObject continueButtonGameOverMenu;
	public GameObject restartButtonGameOverMenu;
	public GameObject exitButtonGameOverMenu;

	public GameObject achievementsMenuTittle;
	public GameObject ballShopTittle;

	public GameObject pauseMenuText;
	public GameObject gameoverMenuText;

	public GameObject mainMenuBestScoreText;

	//achevements
	public GameObject destroy100bricks;
	public GameObject destroy1000bricks;
	public GameObject destroy10000bricks;

	public GameObject play10games;
	public GameObject play100games;
	public GameObject play1000games;

	public GameObject collect1000stars;
	public GameObject collect1000balls;
	public GameObject score100points;

	public GameObject unlockFootballBall;
	public GameObject unlockGolfBall;
	public GameObject unlockAllBalls;

	public GameObject whiteBall;
	public GameObject greenBall;
	public GameObject blueBall;

	public GameObject pinkBall;
	public GameObject redBall;
	public GameObject yellowBall;

	public GameObject brownBall;
	public GameObject silverBall;
	public GameObject aquaBall;

	public GameObject purpleBall;
	public GameObject oliveBall;
	public GameObject violetBall;

	public GameObject footballBall;
	public GameObject tennisBall;
	public GameObject baskteballBall;

	public GameObject beachBall;
	public GameObject golfBall;
	public GameObject volleyballBall;




	private string[] playButtonTranslate = { "开始", "开始", "开始" };
	private string[] achievementsButtonTranslate = {"成就", "成就", "成就" };
	private string[] ballShopButtonTranslate = {"商店", "商店", "商店" };

	private string[] continueButtonPauseMenuTranslate = { "继续", "继续", "继续" };
	private string[] restartButtonPauseMenuTranslate = {"重新开始", "重新开始", "重新开始" };
	private string[] exitButtonPauseMenuTranslate = { "退出", "退出", "退出" };

	private string[] continueButtonGameOverMenuTranslate = { "继续", "继续", "继续" };
	private string[] restartButtonGameOverMenuTranslate = { "重新开始", "重新开始", "重新开始" };
	private string[] exitButtonGameOverMenuTranslate = { "退出", "退出", "退出" };

	private string[] achievementsMenuTittleTranslate = {"成就", "成就", "成就" };
	private string[] ballShopTittleTranslate = { "商店", "商店", "商店" };

	private string[] pauseMenuTextTranslate = {"暂停", "暂停", "暂停" };
	private string[] gameoverMenuTextTranslate = {"游戏结束", "游戏结束", "游戏结束" };

	private string[] mainMenuBestScoreTextTransalate;

	//achievements 

	private string[] destroy100bricksTranslate = {"摧毁 100 块砖", "摧毁 100 块砖", "摧毁 100 块砖" };
	private string[] destroy1000bricksTranslate = { "摧毁 1000 块砖", "摧毁 1000 块砖", "摧毁 1000 块砖" };
	private string[] destroy10000bricksTranslate = { "摧毁 10000 块砖", "摧毁 10000 块砖", "摧毁 10000 块砖" };

	private string[] play10gamesTranslate = {"进行 10 场游戏", "进行 10 场游戏", "进行 10 场游戏" };
	private string[] play100gamesTranslate = { "进行 100 场游戏", "进行 100 场游戏", "进行 100 场游戏" };
	private string[] play1000gamesTranslate = { "进行 1000 场游戏", "进行 1000 场游戏", "进行 1000 场游戏" };

	private string[] collect1000starsTranslate = { "收集 1000 枚货币", "收集 1000 枚货币", "收集 1000 枚货币" };
	private string[] collect1000ballsTranslate = { "收集 1000 颗球", "收集 1000 颗球", "收集 1000 颗球" };
	private string[] score100pointsTranslate = { "达到 100 分", "达到 100 分", "达到 100 分" };

	private string[] unlockFootballBallTranslate = {"解锁足球", "解锁足球", "解锁足球" };
	private string[] unlockGolfBallTranslate = {"解锁高尔夫球", "解锁高尔夫球", "解锁高尔夫球" };
	private string[] unlockAllBallsTranslate = {"解锁所有球", "解锁所有球", "解锁所有球" };

	//ballz shop

	private string[] whiteTranslate = {"白球", "白球", "白球" };
	private string[] greenTranslate = { "绿球", "绿球", "绿球" };
	private string[] blueTranslate = { "蓝球", "蓝球", "蓝球" };

	private string[] pinkTranslate = { "粉球", "粉球", "粉球" };
	private string[] redTranslate = { "红球", "红球", "红球" };
	private string[] yellowTranslate = {"黄球", "黄球", "黄球" };

	private string[] brownTranslate = { "棕球", "棕球", "棕球" };
	private string[] silverTransalte = { "银球", "银球", "银球" };
	private string[] aquaTransalte = { "浅绿球", "浅绿球", "浅绿球" };

	private string[] purpleTranslate = { "紫球", "紫球", "紫球" };
	private string[] oliveTranslate = { "橄榄色球", "橄榄色球", "橄榄色球" };
	private string[] violetTranslate = { "紫罗兰球", "viola", "ljubičasta"};

	private string[] footballBallTranslate = {"足球", "足球", "足球" };
	private string[] tennisBallTranslate = {"网球", "网球", "网球" };
	private string[] basketballBallTranslate = {"篮球", "篮球", "篮球" };

	private string[] beachBallTranslate = {"沙滩球", "沙滩球", "沙滩球" };
	private string[] golfBallTranslate = { "高尔夫球", "高尔夫球", "高尔夫球" };
	private string[] volleyballBallTranslate = { "排球", "排球", "排球" };



	private AudioSource buttonClickSound;
	void Start() {
		string bestUS = "最高分\n" + PlayerPrefs.GetInt ("bestScore").ToString ();
		string bestIT = "最高分\n" + PlayerPrefs.GetInt ("bestScore").ToString ();
		string bestSRB = "最高分\n" + PlayerPrefs.GetInt ("bestScore").ToString ();
		mainMenuBestScoreTextTransalate = new string[]{bestUS, bestIT, bestSRB};
		buttonClickSound = GameObject.Find ("buttonClickSound").GetComponent<AudioSource> ();
		if (PlayerPrefs.GetInt ("currentLanguage") == 0) {
			Translate (0);
			langButton1.GetComponent<Image> ().sprite = americanFlag;
			langButton2.GetComponent<Image> ().sprite = italicanFlag;
			langButton3.GetComponent<Image> ().sprite = serbianFlag;
		} else if (PlayerPrefs.GetInt ("currentLanguage") == 1) {
			Translate (1);
			langButton1.GetComponent<Image> ().sprite = italicanFlag;
			langButton2.GetComponent<Image> ().sprite = americanFlag;
			langButton3.GetComponent<Image> ().sprite = serbianFlag;
		} else if (PlayerPrefs.GetInt ("currentLanguage") == 2) {
			Translate (2);
			langButton1.GetComponent<Image> ().sprite = serbianFlag;
			langButton2.GetComponent<Image> ().sprite = italicanFlag;
			langButton3.GetComponent<Image> ().sprite = americanFlag;
		}
	}

	//PlayerPrefs.GetInt("currentLanguage") // 1 - American, 2 - Italian, 3 - Serbian
	private void SetAmericanLanguage() {
		PlayerPrefs.SetInt ("currentLanguage", 0);
		Translate (0);
	}
	private void SetItalianLanguage() {
		PlayerPrefs.SetInt ("currentLanguage", 1);
		Translate (1);
	}
	private void SetSerbianLanguage() {
		PlayerPrefs.SetInt ("currentLanguage", 2);
		Translate (2);
	}
	private void Translate(int language) {
		playButton.GetComponent<Text> ().text = playButtonTranslate [language];
		achevementsButton.GetComponent<Text> ().text = achievementsButtonTranslate [language];
		ballShopButton.GetComponent<Text> ().text = ballShopButtonTranslate [language];

		continueButtonPauseMenu.GetComponent<Text> ().text = continueButtonPauseMenuTranslate [language];
		restartButtonPauseMenu.GetComponent<Text> ().text = restartButtonPauseMenuTranslate[language];
		exitButtonPauseMenu.GetComponent<Text> ().text = exitButtonPauseMenuTranslate[language];

		continueButtonGameOverMenu.GetComponent<Text> ().text = continueButtonGameOverMenuTranslate[language];
		restartButtonGameOverMenu.GetComponent<Text> ().text = restartButtonGameOverMenuTranslate[language];
		exitButtonGameOverMenu.GetComponent<Text> ().text = exitButtonGameOverMenuTranslate[language];

		achievementsMenuTittle.GetComponent<Text> ().text = achievementsMenuTittleTranslate[language];
		ballShopTittle.GetComponent<Text> ().text = ballShopTittleTranslate[language];

		pauseMenuText.GetComponent<Text> ().text = pauseMenuTextTranslate[language];
		gameoverMenuText.GetComponent<Text> ().text = gameoverMenuTextTranslate[language];

		mainMenuBestScoreText.GetComponent<Text> ().text = mainMenuBestScoreTextTransalate [language];

		//achievements menu

		destroy100bricks.GetComponent<Text> ().text = destroy100bricksTranslate [language];
		destroy1000bricks.GetComponent<Text> ().text = destroy1000bricksTranslate [language];
		destroy10000bricks.GetComponent<Text> ().text = destroy10000bricksTranslate [language];

		play10games.GetComponent<Text> ().text = play10gamesTranslate [language];
		play100games.GetComponent<Text> ().text = play100gamesTranslate [language];
		play1000games.GetComponent<Text> ().text = play1000gamesTranslate [language];

		collect1000balls.GetComponent<Text> ().text = collect1000ballsTranslate [language];
		collect1000stars.GetComponent<Text> ().text = collect1000starsTranslate [language];
		score100points.GetComponent<Text> ().text = score100pointsTranslate [language];

		unlockFootballBall.GetComponent<Text> ().text = unlockFootballBallTranslate [language];
		unlockGolfBall.GetComponent<Text> ().text = unlockGolfBallTranslate [language];
		unlockAllBalls.GetComponent<Text> ().text = unlockAllBallsTranslate [language];

		//ballz shop menu

		whiteBall.GetComponent<Text> ().text = whiteTranslate [language];
		greenBall.GetComponent<Text> ().text = greenTranslate [language];
		blueBall.GetComponent<Text> ().text = blueTranslate [language];

		pinkBall.GetComponent<Text> ().text = pinkTranslate [language];
		redBall.GetComponent<Text> ().text = redTranslate [language];
		yellowBall.GetComponent<Text> ().text = yellowTranslate [language];

		brownBall.GetComponent<Text> ().text = brownTranslate [language];
		silverBall.GetComponent<Text> ().text = silverTransalte [language];
		aquaBall.GetComponent<Text> ().text = aquaTransalte [language];

		purpleBall.GetComponent<Text> ().text = purpleTranslate [language];
		oliveBall.GetComponent<Text> ().text = oliveTranslate [language];
		violetBall.GetComponent<Text> ().text = violetTranslate [language];

		footballBall.GetComponent<Text> ().text = footballBallTranslate [language];
		tennisBall.GetComponent<Text> ().text = tennisBallTranslate [language];
		baskteballBall.GetComponent<Text> ().text = basketballBallTranslate [language];

		beachBall.GetComponent<Text> ().text = beachBallTranslate [language];
		golfBall.GetComponent<Text> ().text = golfBallTranslate [language];
		volleyballBall.GetComponent<Text> ().text = volleyballBallTranslate [language];




	}
		

	public void ShowOrHideLanguageSprites() {
		if (!buttonClickSound.isPlaying) {
			buttonClickSound.Play ();
		}
		if (langButton2.activeInHierarchy) {
			langButton2.SetActive (false);
			langButton3.SetActive (false);
		} else {
			langButton2.SetActive (true);
			langButton3.SetActive (true);
		}
	}
	public void LanguageButton2() {
		ShowOrHideLanguageSprites ();
		string flagName = langButton2.GetComponent<Image> ().sprite.name;
		if (flagName.Equals ("flags_1")) {
			buttonClickSound.Play ();
			SetItalianLanguage ();
			langButton1.GetComponent<Image> ().sprite = italicanFlag;
			langButton2.GetComponent<Image> ().sprite = americanFlag;
			langButton3.GetComponent<Image> ().sprite = serbianFlag;
		} else {
			buttonClickSound.Play ();
			SetAmericanLanguage ();
			langButton1.GetComponent<Image> ().sprite = americanFlag;
			langButton2.GetComponent<Image> ().sprite = italicanFlag;
			langButton3.GetComponent<Image> ().sprite = serbianFlag;
		}
	}
	public void LanguageButton3() {
		ShowOrHideLanguageSprites ();
		string flagName = langButton3.GetComponent<Image> ().sprite.name;
		if (flagName.Equals ("flags_2")) {
			buttonClickSound.Play ();
			SetSerbianLanguage ();
			langButton1.GetComponent<Image> ().sprite = serbianFlag;
			langButton2.GetComponent<Image> ().sprite = italicanFlag;
			langButton3.GetComponent<Image> ().sprite = americanFlag;
		} 
		if (flagName.Equals ("flags_0")) {
			buttonClickSound.Play ();
			SetAmericanLanguage ();
			langButton1.GetComponent<Image> ().sprite = americanFlag;
			langButton2.GetComponent<Image> ().sprite = italicanFlag;
			langButton3.GetComponent<Image> ().sprite = serbianFlag;

		}

	}
}
